package vista.AlgoHero;

import java.util.Iterator;
import modelo.AlgoHero.ColaDeConjuntosReproducibles;
import modelo.AlgoHero.ConjuntoElementosReproducibles;
import modelo.AlgoHero.ElementoReproducible;
import modelo.Excepciones.ObjetoSinMasElementosExcepcion;
import Titiritero.titiritero.Dibujable;
import Titiritero.titiritero.Posicionable;
import Titiritero.titiritero.SuperficieDeDibujo;

public class VistaCola implements Dibujable {

	private ColaDeConjuntosReproducibles cola;

	public VistaCola() {

	}

	public void setColaDeConjuntosReproducibles(ColaDeConjuntosReproducibles c) {

		this.cola = c;
	}

	public void dibujar(SuperficieDeDibujo superfice) {

		Iterator<ConjuntoElementosReproducibles> iterador = this.cola
				.iterator();

		while (iterador.hasNext()) {

			ElementoReproducible elemento = null;

			ConjuntoElementosReproducibles conjunto = iterador.next();

			conjunto.reiniciarRecorrido();

			while (conjunto.hasNext()) {

				try {
					elemento = conjunto.next();
				} catch (ObjetoSinMasElementosExcepcion e) {
					e.printStackTrace();
				}
				VistaElementoReproducible vista;
				if (elemento.getPrecionado()) {
					vista = FactoryVistaElementos.crearElemento(elemento.getTipo(), true);				
				}else
					vista = FactoryVistaElementos.crearElemento(elemento.getTipo(), false);			
				vista.setPosicionable(elemento);

				vista.dibujar(superfice);
			}

		}
	}

	public Posicionable getPosicionable() {

		return null;
	}

	public void setPosicionable(Posicionable posicionable) {

	}

}
